(function(){
    function Observer(){
        //保存传入消息类型
        this.obj = {};
        //订阅消息
        this.on = (type,handler)=>{
            this.obj[type] = (this.obj[type] ? this.obj[type] : []);
            this.obj[type].push(handler);
        }
        //发布消息
        this.emit = (type,msg)=>{
            if(this.obj[type]){
                this.obj[type].forEach((item) => {
                    item(msg);
                });
            }
        }
    }
    window.Observer = Observer;
})()

let oo = new Observer();

oo.on('唐僧',function(msg){console.log("孙悟空 收到了 唐僧的消息：" + msg);});
oo.on('唐僧',function(msg){console.log("猪八戒 收到了 唐僧的消息：" + msg);});

oo.emit('唐僧','明天出发取经！');